Bounded Context
どういうものか?
https://scrapbox.io/mrsekut-book-4048931164/031 https://gyazo.com/0e14562333fe9e44344bba01092ce937Gyazoの画像ロック.icon
同じ言葉が、同じ意味でしか使われていないことを保証する単位、と言える
Bounded Contextは実装寄りの概念なので、
参考
実装レベルの話
また、1つのWorkflowは、1つの関数で表現される
つまり、Bouded Contextは、1つの関数で表現される程度の粒度であるらしいmrsekut.icon
小さくね?mrsekut.icon*3
最初にイメージしていたのはもっと大きい粒度で、各Contextがサブシステムぐらいかなと思っていたmrsekut.icon
つまり、個々がアプリケーションとして独立していて、やり取りする際にはAPIを仲介するようなイメージ
Subdomainにも書いているが、それぐらいの規模の話をしているとイメージするとわかりやすい気がする queueなりを使ってやりとりする
実装してみたmrsekut.icon
前段のworkflowが処理後にqueueにeventを投げる ref 後段のworkflowは、queueをlistenして、eventが来たらcommandに変換しつつworkflowを実行する ref まあ、別にしてもよいのだろうけど、QueueやListenerを用意する必要があって、無駄に複雑になるので
マイクロサービスの文脈
どうやって境界を作るか?
明示的な境界は、チーム編 成、そのアプリケーションに特有の部分が持つ用途、コードベースやデータベーススキー マなどの物理的な表現などの観点から設定すること。
まあそうなりそうだよねmrsekut.icon
同じコードベースでルールで境界付けるの運用でカバーなので辛そうだし
逆に言えば、同じチーム内では同じモデルを扱うようにしましょうとも言える